#!/usr/bin/env python
# -*- coding:utf-8 -*-


from flask import Flask, render_template, request, redirect, session

app = Flask(__name__)  # flask 对象

shengjilis = {
    'hebei': {'石家庄市': '130100', '唐山市': '130200', '秦皇岛市': '130300', '邯郸市': '130400', '邢台市': '130500', '保定市': '130600',
              '张家口市': '130700', '承德市': '130800', '沧州市': '130900', '廊坊市': '131000', '衡水市': '131100'},

    'shanxi': {'太原市': '140100', '大同市': '140200', '阳泉市': '140300', '长治市': '140400', '晋城市': '140500', '朔州市': '140600',
               '晋中市': '140700', '运城市': '140800', '忻州市': '140900', '临汾市': '141000', '吕梁市': '141100'},

    'liaoning': {'沈阳市': '210100', '大连市': '210200', '鞍山市': '210300', '抚顺市': '210400', '本溪市': '210500', '丹东市': '210600',
                 '锦州市': '210700', '营口市': '210800', '阜新市': '210900', '辽阳市': '211000', '盘锦市': '211100', '铁岭市': '211200',
                 '朝阳市': '211300', '葫芦岛市': '211400'},

    'jilin': {'长春市': '220100', '吉林市': '220200', '四平市': '220300', '辽源市': '220400', '通化市': '220500', '白山市': '220600',
              '松原市': '220700', '白城市': '220800'},

    'heilongjiang': {'哈尔滨市': '230100', '齐齐哈尔市': '230200', '鸡西市': '230300', '鹤岗市': '230400', '双鸭山市': '230500',
                     '大庆市': '230600', '伊春市': '230700', '佳木斯市': '230800', '七台河市': '230900', '牡丹江市': '231000',
                     '黑河市': '231100', '绥化市': '231200'},

    'fujian': {'厦门市': '350200', '莆田市': '350300', '三明市': '350400', '泉州市': '350500', '漳州市': '350600', '南平市': '350700',
               '龙岩市': '350800', '宁德市': '350900'},
    'shandong':{'济南市': '370100', '青岛市': '370200', '淄博市': '370300', '枣庄市': '370400', '东营市': '370500', '烟台市': '370600', '潍坊市': '370700', '济宁市': '370800', '泰安市': '370900', '威海市': '371000', '日照市': '371100', '临沂市': '371300', '德州市': '371400', '聊城市': '371500', '滨州市': '371600', '菏泽市': '371700'}
}
app.config.from_object("settings.Config")  # 配置文件存放


# 登录
@app.route('/login', methods=['GET', 'POST'])
def login():
    if request.method == 'GET':
        return render_template('login.html')
    user = request.form.get('user')
    pwd = request.form.get('pwd')
    # 账户名密码
    if user == 'add' and pwd == '123':
        # 用户信息放入session
        session['user_info'] = user

        return redirect('/index')  # 重定向
    else:
        return render_template('login.html', msg='登录失败')


# ip查询
@app.route('/ip_query')
def ip_query():
    # 对session 判断 ，没有值就跳转到登录页面
    userinfo = session.get('user_info')
    if not userinfo:
        return redirect('/login')
    # 查询ip
    from ipdw import ipdw
    city_name = request.args.get('name')
    if not city_name:
        return render_template('ip_query.html')
    data = ipdw(city_name)
    if not data:
        return render_template('ip_query.html', msg='输入有误，请重试')
    return render_template('ip_query.html', jg=data)


# 天气查询
@app.route('/weather/<username>')
def weather(username):
    from cs import cscx
    # 对session 判断 ，没有值就跳转到登录页面
    userinfo = session.get('user_info')
    if not userinfo:
        return redirect('/login')

    # 去省级列表拿数据
    a1 = shengjilis.get(str(username))  # 城市对应表
    lis = []  # 城市表
    for k in a1.keys():
        lis.append(k)
    # 获取查询数据，没有默认第一个
    city_name = request.args.get('city')
    # 初始页面 ，默认第一个
    if not city_name:
        data_list = cscx(a1[lis[0]])  # 城市天气数据
        today = data_list[0]
        future = data_list[1:]
        return render_template('weather.html', city_name=lis[0], future=future, today=today, city=lis,
                               username=username)

    # 选择后执行
    city = a1.get(city_name)
    data_list = cscx(city)
    today = data_list[0]
    future = data_list[1:]
    return render_template('weather.html', city_name=city_name, future=future, today=today, city=lis, username=username)


# 主页
@app.route('/index')
def index():
    # 对session 判断 ，没有值就跳转到登录页面
    userinfo = session.get('user_info')
    if not userinfo:
        return redirect('/login')

    return render_template('index.html')


# 注销
@app.route('/logout')
def logout():
    # 删除信息
    del session['user_info']
    # 跳转登录
    return redirect('/login')

# 跳转主页
@app.route('/')
def logo():

    # 跳转
    return redirect('/index')




if __name__ == '__main__':
    app.run()
